--[[
描述 ： 加密解密 静态方法 类
作者 ： 付大志
修改 ： jwg- qt
时间 ： 14/12/01
]]


MLCryptor = Class('MLCryptor');
local appSystemClass = AppSystem:new();

--[[
功能   ： 对数据进行base64处理
参数   ： string data 数据
参数   ： bool encode  如 ture 编码 false解码
返回   ： string 处理后的数据
]]
function MLCryptor.base64(data,encode)
	if  data == nil  then 
		print('warning:MLCryptor.base64, argument 1 is nil');
    	return; 
	end
	if type(encode) ~= 'boolean'  then
	 	print('warning:MLCryptor.base64, argument 2 type is not boolean!');
	 	return;
	end 
	if encode == true then
		return  appSystemClass:appBase64Encode(data);
	else
	    return appSystemClass:appBase64Decode(data);
	end 
end

--[[
功能   ： AES加解密
参数   ： data    数据 (string)
参数   ： encode  ture 加密 false解密
返回   ： 处理后的数据(string)
注解   ： 加密时，底层会把数据先AES 再 base64
注解   ： 解密时，传过来的数据要是 先AES 再base64 数据
]]
function MLCryptor.AES(data,key,encode) 
	if  data == nil  then 
		print('warning:MLCryptor.AES, argument 1 is nil');
    	return; 
	end
	if  key == nil  then 
		print('warning:MLCryptor.AES, argument 2 is nil');
    	return; 
	end
	if type(encode) ~= 'boolean'  then
	 	print('warning:MLCryptor.AES, argument 3 type is not boolean!');
	 	return;
	end 
	--[[if encode==true then
		return return appSystemClass:appAESEncode(data)
	else
		return MLCryptor.mInstance:AESDecode(data, key);
	end  --]]
end  

--[[
功能   ： 对文件数据进行base64编码
参数   ： filename 文件全路径名 如‘res/’
返回   ： 文件数据编码后的字符串
]]
function MLCryptor.base64File(filename)
	if  filename == nil  then 
		print('warning:MLCryptor.base64File, argument 1 is nil');
    	return; 
	end
    return appSystemClass:appBase64File(filename);
end

--[[
功能   ： 对数据进行MD5
参数   ： data 需要md5数据(string)
返回   ： md5后的 16进制字符串
]]
function MLCryptor.MD5(data)
    if not data then 
    	print('warning:MLCryptor.MD5, argument 1 is nil');
    	return;
    end
    return string.lower(appSystemClass:appToMD5(data));
end
